/*
 ============================================================================
 Page	     : 129-130
 Name        : running.c
 Date	     : 20210403
 Author      : Hbue 18060333
 Copyright   : Your copyright notice
 Description : A useful program for runners
 ============================================================================
 */

#include <stdio.h>

const int S_PER_M = 60;			// 1分钟的秒数
const int S_PER_H = 3600;		// 1小时的秒数
const double M_PER_K = 0.62137;		// 1公里的英里数

int main(void)
{
	double distk = 0;			// 跑过的距离(以公里为单位)
	int min = 0;				// 跑步用时(分钟)
	int sec = 0;				// 跑步用时(秒钟)

	printf("This program converts your time for a metric race\n");
	printf("to a time for running a mile and to your average");
	printf("speed in miles per hour.\n");
	// 该程序将您进行公制比赛的时间转换为行驶一英里的时间，并转换为每小时英里的平均速度。
	printf("Please enter, in kilometers, the distance run.\n");
	scanf("%lf",&distk);
	printf("Next enter the time in minutes and seconds.\n");
	printf("Begin by entering the minutes.\n");
	scanf("%d",&min);
	printf("Now enter the seconds.\n");
	scanf("%d", &sec);

	int time = S_PER_M * min + sec;					// 把时间转换成秒
	// 跑步用时(以秒为单位)
	double distm = M_PER_K * distk;					// 把公里转换成英里
	// 跑过的距离(以英里为单位)
	double rate = distm / time * S_PER_H;			// 英里/秒 x 秒/小时 = 英里/小时
	// 平均速度(以英里/小时为单位)
	double mtime = (double)time / distm;			// 时间/距离 = 跑1英里所用的时间
	// 跑1英里需要的时间,以秒为单位
	int mmin = (int)mtime / S_PER_M;				// 求出分钟数
	// 跑1英里需要的时间,以分钟为单位
	int msec = (int)mtime % S_PER_M;				// 求出剩余的秒数
	// 跑1英里需要的时间,以分钟和秒为单位

	printf("You ran %1.2f km (%1.2f miles) in %d min, %d sec.\n", distk, distm, min, sec);
	printf("That pace corresponds to running a mile in %d min, ", mmin);
	printf("%d sec.\nYour average speed was %1.2f mph.\n", msec, rate);

	return 0;
}

